Міністерство освіти і науки, молоді та спорту України
Прикарпатський національний університет
імені Василя Стефаника
Кафедра радіофізики і електроніки
Лабораторна робота №2
Команди пересилання даних восьмирозрядного мікропроцесора КР580ВМ80 (Intel 8080).
Івано-Франківськ – 2011
1. Мета роботи
Вивчити основні типи команд пересилання даних та послідовність їх виконання восьмирозрядним мікропроцесором, навчитися створювати програми з їх використанням.
2. Обладнання
Програма - емулятор мікропроцесорної системи на базі одно-кристального КР580ВМ80.
3. Короткі відомості з теорії
3.1. Команди пересилання даних та способи адресації, які вони використовують.
Команди пересилання даних використовуються мікропроцесором для передавання даних в різні пристрої зберігання інформації, які є в його розпорядженні, як в регістри, так і в комірки оперативної пам'яті. Розрізняють такі типи команд: завантаження, пересилання регістр - регістр, запис в пам'ять та зчитування з пам'яті (пересилання пам'ять - регістр).
Команди пересилання даних фактично є командами копіювання даних, оскільки під час виконання команди дані, які містить джерело, не руйнуються. Код операції в команді пересилання даних задає джерело даних S (Source), приймач даних D (Destination) і спосіб їхньої адресації (Коди джерел та приймачів даних наведено в Табл.1). Мікропроцесор КР580ВМ80, як відомо, використовує чотири види адресації: безпосередню, пряму, регістрову та непряму. Кожен із видів адресації може бути використаний як для джерела так і для приймача даних. З шістнадцяти можливих комбінацій в мікропроцесорі КР580ВМ80 для команд завантаження даних використовується сім:
безпосередня / регістрова
безпосередня / непряма
регістрова / регістрова
регістрова / пряма
регістрова / непряма
пряма / регістрова
непряма / регістрова
S/D
код
S/D
код
Регістр B
000b / 0q
Регістр H
100b / 4q
Регістр C
001b / 1q
Регістр L
101b / 5q
Регістр D
010b / 2q
Память M
110b / 6q
Регістр E
011b / 3q
Регістр A
111b / 7q
Таблиця 1. Коди джерел та приймачів даних.
Безпосередня адресація використовується в тому випадку, коли необхідно завантажити початкові дані в регістри або пам'ять, чи константи, які будуть використовуватися на протязі роботи програми. Безпосередня адресація є зручною, наочною і може використовуватись для початкової розробки програми. Недоліком є те, що програми, написані з її використанням не мають достатньо гнучкості, а саме: для того, щоби змінити значення констант або початкових даних, необхідно переписувати код програми. Також недоліком є те, що програмний код займає більше комірок пам'яті (2, або 3) та виконується за більше циклів (2 або 3), ніж в випадку регістрової адресації. Безпосередня адресація часто використовується для завантаження одного з регістрів початковим значенням кількості циклів, які необхідно виконати, та наступним зменшенням значення регістра на 1 після виконання тіла циклу.
Регістрова адресація використовується головним чином для пересилання проміжних даних які виникають в процесі роботи програми. Пересилання між регістрами займають найменше часу (1 цикл, 4 або 5 тактів), тому їх використовують для скорочення часу виконання програм. Програмний код займає найменше пам'яті, що теж є перевагою даного виду адресації. Недоліком регістрової адресації є те, що кількість регістрів для зберігання проміжних даних є обмежена (6 однобайтних B, C, D, E, H, L), що недостатньо для роботи навіть не дуже складних програм. Тому одним із принципів розробки перспективних процесорів RISC є вимога наявності великої кількості однотипних регістрів.
Пряма адресація використовується тоді, коли кількість проміжних даних перевищує кількість наявних внутрішніх регістрів. Як правило, програміст виділяє під зберігання вхідних, проміжних та вихідних даних програми деяку область оперативної пам'яті, яка не повинна перекриватись з областю програмного коду та областю стека. Якщо таке перекриття відбувається, то результат дії програми неможл...